package com.danceforyou.user.service;

import com.danceforyou.common.service.BaseService;
import com.danceforyou.user.dao.UserDAO;
import com.danceforyou.user.model.UserDO;
import com.danceforyou.user.vo.UserVO;

import java.util.List;

/**
 * 类名称：UserService
 * 创建人：danceforyou
 * 创建时间：2021年01月10日
 * 版本号：1.0v
 */
public interface UserService extends BaseService<Long, UserDO, UserVO, UserDAO> {

    /**
     * 员工登录
     * @param account 员工账号
     * @param password 员工密码
     * @param requestIP 登录IP地址
     */
    void saveLogin(String account, String password, String requestIP);

    /**
     * 新增信息
     * @param user 信息
     */
    void saveUserInfo(UserDO user);

    /**
     * 修改信息
     * @param user 信息
     */
    void updateUserInfo(UserDO user);

    /**
     * 删除信息
     * @param ids 主键
     */
    void deleteUserInfoByIds(String ids);

    /**
     * 停用员工
     * @param userId 员工ID
     */
    void setUserDisable(Long userId);

    /**
     * 停用员工
     * @param userId 员工ID
     */
    void setUserEnable(Long userId);

    /**
     * 重置员工密码
     * @param userId 员工ID
     */
    void setUserPasswordReset(Long userId);

    /**
     * 修改员工密码
     * @param oldPassword 原密码
     * @param newPassword 新密码
     */
    void updateUserPassword(String oldPassword, String newPassword);

    /**
     * 根据客户ID获取所有员工
     * @param customerId 客户ID
     * @return List<UserVO>
     */
    List<UserVO> listAllUsersByCustomerId(Long customerId);

    /**
     * 获取上级员工
     * @param roleId 岗位ID
     * @return UserDO
     */
    UserDO getSuperiorUser(Long roleId);
}